C++14之std::exchange的使用和原理分析 | 您所在的位置:网站首页 › std move的作用 › C++14之std::exchange的使用和原理分析 |
目录 1.概述 2.使用 2.1.交换操作 2.2.移动语义 3.原理 4.综合示例 5.总结 1.概述std::exchange 是 C++ 标准库中的一个实用函数,它的主要作用是替换一个对象的值,并返回该对象的旧值。这个函数在 C++14 中引入,主要用于简化和优化代码。 它的原型定义如下: 这个函数接受两个参数:一个是要替换值的对象 obj,另一个是新的值 new_value。函数将 obj 的值替换为 new_value,并返回 obj 的旧值。 注意: T 必须满足可移动构造 (MoveConstructible) 。而且必须能移动赋值 U 类型对象给 T 类型对象 2.使用 2.1.交换操作在std::exchage未出现之前, 我们交换两个变量的值,需要先定义一个临时的中间变量,但是使用std::exchange,你可以更简洁地完成这个操作;这对于实现一些特定的算法,尤其是需要保持变量旧值的算法时非常有用。示例如下: #include #include #include int main() { std::string name = "Alice"; std::string new_name = "Bob"; std::string old_name = std::exchange(name, new_name); std::cout |
CopyRight 2018-2019 实验室设备网 版权所有 |